let Promise1 = require("./promise")

// let promise2 = new Promise((resolve, reject) => {
//   resolve("ok")
// }).then((data) => {
//   return 100
// })
//
// promise2.then((data) => {
//   console.log(data);
// }, (err) => {
//   console.log("err111 =>", err);
// })

// promise 一旦成功, 不能失败. return this 的话, 状态一旦改变, 就不会再有状态的改变.

// 如果返回的是一个 失败的promise, 或者报错了, 才会走下一个 then的失败, 否则就是走的成功回调

// 如何实现链式调用??  return new Promise()  每次都产生一个全新的 promise, 来保证状态可以成功的变化.


// 问题1 ----------------- 循环引用问题
let promise2 = new Promise1((resolve, reject) => {
  resolve("ok")
}).then((data) => {
  return promise2
})

promise2.then((data) => {
  console.log(data);
}, (err) => {
  console.log("err111 =>", err);
})


// 问题2. x.then 出错
